import { createRouter, createWebHistory } from 'vue-router';
import NProgress from 'nprogress';
import 'nprogress/nprogress.css';
import { appRoutes } from './routes';
import { REDIRECT_MAIN, NOT_FOUND_ROUTE } from './routes/base';
import createRouteGuard from './guard';

// 配置进度条
NProgress.configure({ showSpinner: false });

// 创建路由
const router = createRouter({
  // 配置地址：历史模式
  history: createWebHistory(),
  // 配置路由
  routes: [
    {
      path: '/',
      redirect: 'login',
    },
    {
      path: '/login',
      name: 'login',
      component: () => import('@/views/login/index.vue'),
      meta: {
        requiresAuth: false,
      },
    },
    // 引入所有主要路由、重定向路由、页面异常路由(注意重定向路由与页面异常路由在最下面)
    ...appRoutes,
    REDIRECT_MAIN,
    NOT_FOUND_ROUTE,
  ],
  // 配置进度条：加载路由时回到顶部
  scrollBehavior() {
    return { top: 0 };
  },
});

// 创建路由守卫(放在路由的下面)
createRouteGuard(router);

export default router;
